Computer system speeds continue to increase and more computer systems are connected to communicate with other computer systems daily. As the volume of digital data communicated between computer systems increases, there is a need to develop higher bandwidth communication links. Often, these communication links are part of a network, such as a local area network (LAN), metro area network (MAN), or a wide area network (WAN).
One network technology, such as Ethernet, employs shared bus technology and carrier sense multiple access with collision detection (CSMA/CD) access. In an Ethernet network, communication links are attached to a cable or optical fiber. The network operates at a particular bandwidth and each communication link transmits only after finding the cable or fiber channel clear. If two communication links transmit simultaneously, a data collision occurs and each of the communication links delays re-transmission for a random length of time. The original Ethernet operated at 10 megabits per second (Mbps). Later versions of Ethernet operate at other speeds, such as 10 gigabits per second (Gbps).
Typically, a communication link is coupled to many computer systems, including microprocessor based systems, application specific integrated circuit (ASIC) based systems, and digital signal processor (DSP) based systems. Each of the computer systems coupled to the communication link does not require the entire bandwidth of the communication link. Instead, the computer systems share the bandwidth of the communication link.
The communication link services each of the computer systems coupled to the communication link. The communication link can service the coupled computer systems in a round robin methodology. In this approach, the communication link services one computer system at a time. All other computer systems coupled to the communication link are serviced before the one computer system is serviced a second time. Thus, with many computer systems coupled to a communication link, the latency between servicing a computer system a first time and a second time can be very large. Also, receive buffers need to be very large to avoid overflow and underflow conditions. Implementing large receive buffers in an integrated circuit chip uses space and adds cost to the chip.
For these and other reasons there is a need for the present invention.